﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Ferreteria.Forms.GestionClientes
{
    public partial class frmDetalleCompraAd : Form
    {
        VentasAdicionales venta;

        public frmDetalleCompraAd(VentasAdicionales ObjetoVentaAd)
        {
            InitializeComponent();

            venta = ObjetoVentaAd;
            Cuentas cuenta = ObjetoVentaAd.Cuentas;

            txbNumero.Text = ObjetoVentaAd.va_nro_comp_ini.ToString("0000-000000");
            txbTipo.Text = "X";
            txbFecha.Text = ObjetoVentaAd.va_fecha.ToShortDateString();

            txbSubtotal.Text = ObjetoVentaAd.va_subtotal.ToString("$ 0.00");
            txbDescuento.Text = ObjetoVentaAd.va_descuento.ToString("0.00 %");
            txbMontoFinal.Text = cuenta.cuenta_monto.ToString("$ 0.00");

            foreach (var lineaVentaAd in ObjetoVentaAd.LineaVentaAdicional)
            {
                int i = dgvListaArticulos.Rows.Add();

                dgvListaArticulos.Rows[i].Cells["categoria"].Value = lineaVentaAd.Articulos.Categorias.categ_nombre;
                dgvListaArticulos.Rows[i].Cells["articulonombre"].Value = lineaVentaAd.Articulos.art_nombre;
                dgvListaArticulos.Rows[i].Cells["cantidad"].Value = lineaVentaAd.linva_cant;
                dgvListaArticulos.Rows[i].Cells["preciounitario"].Value = lineaVentaAd.linva_precio;
                dgvListaArticulos.Rows[i].Cells["preciototal"].Value = lineaVentaAd.linva_preciofinal;
            }

            txbMontoPagado.Text = cuenta.cuenta_pagado.ToString("$ 0.00");
            txbAdeudado.Text = (cuenta.cuenta_monto - cuenta.cuenta_pagado).ToString("$ 0.00");

            dgvPagosRealizados.AutoGenerateColumns = false;
            dgvPagosRealizados.DataSource = cuenta.Pagos;

            if (dgvPagosRealizados.CurrentRow != null)
                cargarPago();
        }

        void cargarPago()
        {
            try
            {
                if ((string)dgvPagosRealizados.CurrentRow.Cells["pago_tipo"].Value == Clases.FormasDePago.Cheque)
                {
                    int id_pago = (int)dgvPagosRealizados.CurrentRow.Cells["pago_id"].Value;

                    Pagos pago = venta.Cuentas.Pagos.FirstOrDefault(p => p.pago_id == id_pago);

                    txbChequeVencimiento.Text = pago.pago_cheque_vencimiento.Value.ToShortDateString();
                    txbChequeBanco.Text = pago.pago_cheque_banco;
                    txbChequeMonto.Text = pago.pago_monto.ToString("$ 0.00"); ;
                    txbChequeNro.Text = pago.pago_cheque_nro;

                    gbDetalleCheque.Enabled = true;
                }
                else
                {
                    txbChequeVencimiento.Text = "";
                    txbChequeBanco.Text = "";
                    txbChequeMonto.Text = "";
                    txbChequeNro.Text = "";

                    gbDetalleCheque.Enabled = false;
                }
            }
            catch
            {
                MessageBox.Show("A ocurrido un error al obtener los datos del pago");
            }
        }

        private void dgvPagosRealizados_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            cargarPago();
        }
    }
}
